package com.ruoyi.app.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 返校预约对象 app_return_reservations
 * 
 * @author ruoyi
 * @date 2025-11-04
 */
public class AppReturnReservations extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 预约ID（主键、自增） */
    private Long id;

    /** 用户id（外键） */
    @Excel(name = "用户id", readConverterExp = "外=键")
    private Long userId;

    /** 返校时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "返校时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date returnTime;

    /** 离校时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "离校时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date leaveTime;

    /** 返校人数 */
    @Excel(name = "返校人数")
    private Long visitorCount;

    /** 返校事由 */
    @Excel(name = "返校事由")
    private String reason;

    /** 预约审核状态（0待审核、1通过、2拒绝通过） */
    @Excel(name = "预约审核状态", readConverterExp = "0=待审核、1通过、2拒绝通过")
    private Long auditStatus;

    /** 预约创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预约创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdTime;

    /** 审核通过时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核通过时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date approvedTime;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setReturnTime(Date returnTime) 
    {
        this.returnTime = returnTime;
    }

    public Date getReturnTime() 
    {
        return returnTime;
    }

    public void setLeaveTime(Date leaveTime) 
    {
        this.leaveTime = leaveTime;
    }

    public Date getLeaveTime() 
    {
        return leaveTime;
    }

    public void setVisitorCount(Long visitorCount) 
    {
        this.visitorCount = visitorCount;
    }

    public Long getVisitorCount() 
    {
        return visitorCount;
    }

    public void setReason(String reason) 
    {
        this.reason = reason;
    }

    public String getReason() 
    {
        return reason;
    }

    public void setAuditStatus(Long auditStatus) 
    {
        this.auditStatus = auditStatus;
    }

    public Long getAuditStatus() 
    {
        return auditStatus;
    }

    public void setCreatedTime(Date createdTime) 
    {
        this.createdTime = createdTime;
    }

    public Date getCreatedTime() 
    {
        return createdTime;
    }

    public void setApprovedTime(Date approvedTime) 
    {
        this.approvedTime = approvedTime;
    }

    public Date getApprovedTime() 
    {
        return approvedTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("userId", getUserId())
            .append("returnTime", getReturnTime())
            .append("leaveTime", getLeaveTime())
            .append("visitorCount", getVisitorCount())
            .append("reason", getReason())
            .append("auditStatus", getAuditStatus())
            .append("createdTime", getCreatedTime())
            .append("approvedTime", getApprovedTime())
            .toString();
    }
}
